A computer network, often simply referred to as a network, is a group of interconnected computers and devices that facilitates communication among users and allows users to share resources. Adapters, switches, and other devices are typically used during network communication for reading and writing data at mass storage devices.
Computing devices (or systems) use mass storage devices to store data. Data centers are commonly used to store large amounts of data for computing devices. Different storage options are available for computing devices to store data and retrieve data. For example, options include direct-attached storage (DAS), network-attached storage (NAS), and storage area networks (SANs).
A DAS system typically includes a plurality of storage drives that are directly attached to a computing device (for example, a server) and is accessible via a host bus adapter (HBA). Common protocols used for DAS storage devices are SCSI (Small Computer Systems Interface), ATA (AT attachment), SATA (Serial ATA), SAS (Serial Attached SCSI) and others.
NAS is a file level storage that provides access to a plurality of computing devices. NAS typically uses network file sharing protocols, for example, NFS (Networked File System), CIFS (Common Internet File System), and others for storing and managing data at storage devices.
A SAN is a dedicated network that provides access to consolidated, block level data storage. SANs are primarily used to make storage devices, such as disk arrays, tape libraries, and others, accessible to servers so that the devices appear like locally attached devices to an operating system of a computing device. A SAN typically has its own network of storage devices that are generally not accessible through the local area network by other devices. SANs often utilize a Fibre Channel fabric topology, an infrastructure specially designed to handle storage communications. SANs may also use iSCSI (i.e. mapping SCSI over TCP/IP (Transmission Control Protocol/Internet Protocol), Fibre Channel over Ethernet (FCoE), FCP (Fibre Channel over SCSI), Hyper SCSI (i.e. SCSI over Ethernet) and other protocols for storing data at storage devices.
In order to effectively use network storage solutions, as described, computer systems often utilize caching mechanisms, by placing more often used or more likely to be used data into high speed and/or local memory solutions (such as flash memory, for example). This process becomes much more complex in a virtualized environment. In a virtualized environment, a hypervisor or virtual machine monitor (VMM) is a piece of computer software, firmware or hardware that manages virtual machines. Multiple virtual machines (VMs) can be presented to one or more users while sharing the same physical resources. A computer on which a hypervisor is running one or more virtual machines is defined as a host machine. Each virtual machine is called a guest machine. The hypervisor presents the guest operating systems with a virtual operating platform and manages the execution of the guest operating systems. Multiple instances of a variety of operating systems may share the virtualized hardware resources.
In a virtualized environment, a hypervisor is presented with a set of logical unit identifiers (or LUNs) to identifier storage resources, such as on a SAN. The hypervisor must then present those LUNs to the virtual machines, typically by splitting them into smaller LUNs and presenting different pieces to different virtual machines. With the variety of operating systems and applications running at different virtual machines, input/output (I/O) operations from the hypervisor become highly randomized, which is sometimes referred to as the “I/O blender effect.” Determining whether an entire SAN LUN should be cached or not can be difficult, and even if the decision is made, large chunks of that cache may end up being wasteful, as only portions of the hypervisor's LUNs may benefit from caching operations. Continuous efforts are being made to provide improved caching mechanisms, particularly in virtualized environments.